how does software testing tools work